package com.amarsoft.apot.entity;

import com.baomidou.mybatisplus.annotation.*;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;

@Data
@NoArgsConstructor
@AllArgsConstructor
@TableName("tab_person")
public class Person implements Serializable {

    @TableId(type=IdType.AUTO) //自增
    private Long id;
    // AUTO (0) 数据库id自增(找到最大的Id,然后加1)
    // NONE (1) 未设置主键
    // INPUT (2) 手工输入
    // ID_WORKER (3) 默认的全局唯一id
    // UUID (4)//全局唯一id uuid
    // ID_WORKER_STR (5) ID_WORKER字符串表示法

    private String name;
    private String password;
    private String address;
    private int age;

    // 逻辑删除字段
    @TableLogic
    private Integer deleted;

    // 代码层面自动填充时间，需要定义该注解的处理器进行处理
    @TableField(fill= FieldFill.INSERT)
    private Date createTime;
    @TableField(fill=FieldFill.INSERT)
    private Date updateTime;

    //乐观锁Version注解 =>当要更新一条记录的时候，希望这条记录没有被别人更新
    @Version
    private Integer version;

}


